package com.dingwen.treasure.config.i18n;

import org.springframework.context.MessageSource;
import org.springframework.context.i18n.LocaleContextHolder;
import org.springframework.stereotype.Component;

import javax.annotation.Resource;
import java.util.Locale;

/**
 * 区域设置消息
 * 语言环境信息
 *
 * @author dingwen
 * @date 2022/03/28
 */
@Component
public class LocaleMessage {
    /**
     * 消息来源
     */
    @Resource
    private  MessageSource messageSource;

    /**
     * 得到
     *
     * @param code 代码
     * @return {@link String}
     */
    public String get(String code) {
        // 区域
        Locale locale = LocaleContextHolder.getLocale();
        return messageSource.getMessage(code, null, locale);
    }

    /**
     * 得到
     *
     * @param code   代码
     * @param locale 语言环境
     * @return {@link String}
     */
    public String get(String code, Locale locale) {
        return messageSource.getMessage(code, null, locale);
    }


    /**
     * 得到
     *
     * @param code           代码
     * @param defaultMessage 默认消息
     * @param args           arg
     * @return {@link String}
     */
    public String get(String code, String defaultMessage, Object... args) {
        Locale locale = LocaleContextHolder.getLocale();
        return this.get(code, defaultMessage, locale, args);
    }

    /**
     * 得到
     *
     * @param code           代码
     * @param defaultMessage 默认消息
     * @param locale         语言环境
     * @param args           arg
     * @return {@link String}
     */
    public String get(String code, String defaultMessage, Locale locale, Object[] args) {
        return messageSource.getMessage(code, args, defaultMessage, locale);
    }
}

